/**
 * Copyright ToFBA Ecommerce Logistics LTD. All Rights Reserved.
 *
 * This software is the confidential and proprietary information of
 * Shenzhen ToFBA Ecommerce Logistics Co., Ltd.
 * No body can copy or modify any part of this source without the permission of
 * Shenzhen ToFBA Ecommerce Logistics Co., Ltd.
 *   _________    ___   ________  ______        _       
 *  |  _   _  | .'   `.|_   __  ||_   _ \      / \      
 *  |_/ | | \_|/  .-.  \ | |_ \_|  | |_) |    / _ \     
 *      | |    | |   | | |  _|     |  __'.   / ___ \    
 *     _| |_   \  `-'  /_| |_     _| |__) |_/ /   \ \_  
 *    |_____|   `.___.'|_____|   |_______/|____| |____|
 *                                                
 */
package com.lmexpress.orm.openapi;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * <小包API订单通用实体>
 * 
 * @author Henry(fba02)
 * @version [版本号, 2020-10-16]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@SuppressWarnings("serial")
public class ExpressOrderApi implements Serializable {
    private String token;// token    
    private String customerCode;// 客户编码    
    private String buyerId; // 选填    
    private String returnSign;// 退回标志默认N表示不退回Y标表示退回.中邮可以忽略该属性    
    private String customerInvoiceCode;// 原单号,必填  
    private String trackingNumber;// 追踪号   
    private String tradeType;// 平台类型
    private String countryCode;// 收件国家二字码,必填    
    private String taxNumber;// 税号    
    // ------------------------------------------------ 渠道信息getProductList接口取得
    private Long productId;// 运输方式ID,必填
    private String productCode;// 渠道代码
    private String thirdPartyProductCode;// 第三方渠道代码,根据productId或者productCode统一调用渠道转换接口成第三方渠道
    // ------------------------------------------------ 产品信息
    private Integer orderPiece;// 下单件数
    private Double weight;// 总重选填如果SKU上有单重可不填该项   
    private String transactionUrl;// 产品销售地址
    // ------------------------------------------------ 代收货款业务
    private Double collectionAmount;// 代收金额    
    private Double cargoAmount;// 订单实际金额用于报关申报    
    private Double insuranceAmount;// 保险金额 
    private String currencyCode;// 币种,标准三字代码    
    // ------------------------------------------------ 收件人信息
    private String consigneeName;// 收件人,必填    
    private String consigneeAddress;// 收件人地址街道,必填    
    private String consigneeAddress2;// 收件人地址信息二,必填
    private String consigneeCity;// 收件人城市,必填    
    private String consigneePostCode;// 邮编有邮编,必填    
    private String consigneeState;// 收件人州/省,必填    
    private String consigneeTelephone;// 收件人电话,必填 
    private String consigneeMobile;// 手机号选填,选填
    private String consigneeEmail;// 收件人邮箱,选填    
    private String consigneeCompanyName;// 收件公司名,选填
    // ------------------------------------------------ 发件人信息
    private String shipperName;// 发件人姓名,选填    
    private String shipperCompanyName;// 发件人公司名,选填    
    private String shipperAddress1;// 发件人地址1,选填    
    private String shipperAddress2;// 发件人地址2,选填    
    private String shipperAddress3;// 发件人地址3,选填    
    private String shipperCity;// 发件人城市,选填    
    private String shipperState;// 发件人州,选填    
    private String shipperPostCode;// 发件人邮编,选填    
    private String shipperCountry = "CN";// 发件人国家,选填    
    private String shipperTelephone;// 发件人电话,选填
    private String customerRemark;// 备注
    
    private List<OrderInvoice> orderInvoices;
    private List<OrderVolume> orderVolumes;
    
    
    /**
     * API对接凭证，不对外开放，内部传递数据
     */
    private Map<String, String> apiCredentials;
    
    public String getToken() {
        return token;
    }
    
    public void setToken(String token) {
        this.token = token;
    }
    
    public String getCustomerCode() {
        return customerCode;
    }
    
    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }
    
    public String getBuyerId() {
        return buyerId;
    }

    public void setBuyerId(String buyerId) {
        this.buyerId = buyerId;
    }

    public String getReturnSign() {
        return returnSign;
    }
    
    public void setReturnSign(String returnSign) {
        this.returnSign = returnSign;
    }
    
    public String getCustomerInvoiceCode() {
        return customerInvoiceCode;
    }
    
    public void setCustomerInvoiceCode(String customerInvoiceCode) {
        this.customerInvoiceCode = customerInvoiceCode;
    }
    
    public String getTrackingNumber() {
        return trackingNumber;
    }
    
    public void setTrackingNumber(String trackingNumber) {
        this.trackingNumber = trackingNumber;
    }
    
    public String getTradeType() {
        return tradeType;
    }
    
    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }
    
    public String getCountryCode() {
        return countryCode;
    }
    
    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }
    
    public String getTaxNumber() {
        return taxNumber;
    }
    
    public void setTaxNumber(String taxNumber) {
        this.taxNumber = taxNumber;
    }
    
    public Long getProductId() {
        return productId;
    }
    
    public void setProductId(Long productId) {
        this.productId = productId;
    }
    
    public String getThirdPartyProductCode() {
        return thirdPartyProductCode;
    }
    
    public void setThirdPartyProductCode(String thirdPartyProductCode) {
        this.thirdPartyProductCode = thirdPartyProductCode;
    }
    
    public Integer getOrderPiece() {
        return orderPiece;
    }
    
    public void setOrderPiece(Integer orderPiece) {
        this.orderPiece = orderPiece;
    }
    
    public Double getWeight() {
        return weight;
    }
    
    public void setWeight(Double weight) {
        this.weight = weight;
    }
    
    public String getTransactionUrl() {
        return transactionUrl;
    }
    
    public void setTransactionUrl(String transactionUrl) {
        this.transactionUrl = transactionUrl;
    }
    
    public Double getCollectionAmount() {
        return collectionAmount;
    }
    
    public void setCollectionAmount(Double collectionAmount) {
        this.collectionAmount = collectionAmount;
    }
    
    public Double getCargoAmount() {
        return cargoAmount;
    }
    
    public void setCargoAmount(Double cargoAmount) {
        this.cargoAmount = cargoAmount;
    }
    
    public Double getInsuranceAmount() {
        return insuranceAmount;
    }
    
    public void setInsuranceAmount(Double insuranceAmount) {
        this.insuranceAmount = insuranceAmount;
    }
    
    public String getCurrencyCode() {
        return currencyCode;
    }
    
    public void setCurrencyCode(String currencyCode) {
        this.currencyCode = currencyCode;
    }
    
    public String getConsigneeName() {
        return consigneeName;
    }
    
    public void setConsigneeName(String consigneeName) {
        this.consigneeName = consigneeName;
    }
    
    public String getConsigneeAddress() {
        return consigneeAddress;
    }
    
    public void setConsigneeAddress(String consigneeAddress) {
        this.consigneeAddress = consigneeAddress;
    }
    
    public String getConsigneeAddress2() {
        return consigneeAddress2;
    }
    
    public void setConsigneeAddress2(String consigneeAddress2) {
        this.consigneeAddress2 = consigneeAddress2;
    }
    
    public String getConsigneeCity() {
        return consigneeCity;
    }
    
    public void setConsigneeCity(String consigneeCity) {
        this.consigneeCity = consigneeCity;
    }
    
    public String getConsigneePostCode() {
        return consigneePostCode;
    }
    
    public void setConsigneePostCode(String consigneePostCode) {
        this.consigneePostCode = consigneePostCode;
    }
    
    public String getConsigneeState() {
        return consigneeState;
    }
    
    public void setConsigneeState(String consigneeState) {
        this.consigneeState = consigneeState;
    }
    
    public String getConsigneeTelephone() {
        return consigneeTelephone;
    }
    
    public void setConsigneeTelephone(String consigneeTelephone) {
        this.consigneeTelephone = consigneeTelephone;
    }
    
    public String getConsigneeMobile() {
        return consigneeMobile;
    }
    
    public void setConsigneeMobile(String consigneeMobile) {
        this.consigneeMobile = consigneeMobile;
    }
    
    public String getConsigneeEmail() {
        return consigneeEmail;
    }
    
    public void setConsigneeEmail(String consigneeEmail) {
        this.consigneeEmail = consigneeEmail;
    }
    
    public String getConsigneeCompanyName() {
        return consigneeCompanyName;
    }
    
    public void setConsigneeCompanyName(String consigneeCompanyName) {
        this.consigneeCompanyName = consigneeCompanyName;
    }
    
    public String getShipperName() {
        return shipperName;
    }
    
    public void setShipperName(String shipperName) {
        this.shipperName = shipperName;
    }
    
    public String getShipperCompanyName() {
        return shipperCompanyName;
    }
    
    public void setShipperCompanyName(String shipperCompanyName) {
        this.shipperCompanyName = shipperCompanyName;
    }
    
    public String getShipperAddress1() {
        return shipperAddress1;
    }
    
    public void setShipperAddress1(String shipperAddress1) {
        this.shipperAddress1 = shipperAddress1;
    }
    
    public String getShipperAddress2() {
        return shipperAddress2;
    }
    
    public void setShipperAddress2(String shipperAddress2) {
        this.shipperAddress2 = shipperAddress2;
    }
    
    public String getShipperAddress3() {
        return shipperAddress3;
    }
    
    public void setShipperAddress3(String shipperAddress3) {
        this.shipperAddress3 = shipperAddress3;
    }
    
    public String getShipperCity() {
        return shipperCity;
    }
    
    public void setShipperCity(String shipperCity) {
        this.shipperCity = shipperCity;
    }
    
    public String getShipperState() {
        return shipperState;
    }
    
    public void setShipperState(String shipperState) {
        this.shipperState = shipperState;
    }
    
    public String getShipperPostCode() {
        return shipperPostCode;
    }
    
    public void setShipperPostCode(String shipperPostCode) {
        this.shipperPostCode = shipperPostCode;
    }
    
    public String getShipperCountry() {
        return shipperCountry;
    }
    
    public void setShipperCountry(String shipperCountry) {
        this.shipperCountry = shipperCountry;
    }
    
    public String getShipperTelephone() {
        return shipperTelephone;
    }
    
    public void setShipperTelephone(String shipperTelephone) {
        this.shipperTelephone = shipperTelephone;
    }
    
    public String getCustomerRemark() {
        return customerRemark;
    }
    
    public void setCustomerRemark(String customerRemark) {
        this.customerRemark = customerRemark;
    }
    
    public List<OrderInvoice> getOrderInvoices() {
        return orderInvoices;
    }
    
    public void setOrderInvoices(List<OrderInvoice> orderInvoices) {
        this.orderInvoices = orderInvoices;
    }
    
    public List<OrderVolume> getOrderVolumes() {
        return orderVolumes;
    }
    
    public void setOrderVolumes(List<OrderVolume> orderVolumes) {
        this.orderVolumes = orderVolumes;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

	public Map<String, String> getApiCredentials() {
		return apiCredentials;
	}

	public void setApiCredentials(Map<String, String> apiCredentials) {
		this.apiCredentials = apiCredentials;
	}
}